function boe = dips_duur_type_busfout(begin,einde)

%dips en onderbrekingen bepalen ten gevolge van busfouten
%clear all;
load busfout;

tijd_begin_dip = 10; %testje -> nog aanpassen (zo goot want anders loopt lus vast;))
tijd_eind_dip = 0;
diepte_dip = 1;
%k=1;
check_dip = 0;
teller = 0;

%format: lijnfout bus_dip duur max_diepte begin eind 
dips_busfout = zeros(1000,7);
aantal_dips_busfout = 0;
eind = 0;

%laten lopen over alle (bus)fouten
for kk = begin:einde

%lopen over alle bussen (tot 14 want laatste bus is de extra bus en veroorzaakt de fout dus
%dip nutteloos om op te slaan)
for k = 1:14
eind = 0;
check_dip = 0;
    
for t = 1:160 % grens op 160???? %size(tijd,1)
    
if (alle_spanningen_busfout(t+200*teller,k)<0.9) && (alle_spanningen_busfout(t+200*teller,k)>0.1) && (check_dip == 0)
    
    tijd_begin_dip = tijd(t,kk);
    t1 = t;
    %diepte_dip = alle_spanningen_busfout(t+200*teller,k);
    aantal_dips_busfout = aantal_dips_busfout + 1;
    %dips_busfout(aantal_dips_busfout,4) = diepte_dip;
    dips_busfout(aantal_dips_busfout,5) = tijd_begin_dip;
    dips_busfout(aantal_dips_busfout,1) = kk;
    dips_busfout(aantal_dips_busfout,2) = k;
    check_dip = 1;
    
end

if (check_dip == 1) && (alle_spanningen_busfout(t+200*teller,k)>=0.9) && (eind == 0)
    
     tijd_eind_dip = tijd(t,kk);
     dips_busfout(aantal_dips_busfout,6) = tijd_eind_dip;
     dips_busfout(aantal_dips_busfout,3) = dips_busfout(aantal_dips_busfout,6)-dips_busfout(aantal_dips_busfout,5);
     eind = 1;

end
if eind == 1
    diepte_dip = min(alle_spanningen_busfout(t1+200*teller:t+200*teller,k));
    dips_busfout(aantal_dips_busfout,4) = diepte_dip;
end

end

%%%%%%%%%%
%TIJDELIJK
%%%%%%%%%%

%als de spanning niet terug hersteld kan worden krijgt de dipduur de waarde
%1234. Hierop kan Bjorn zoeken. (1234 is een waarde die nooit bekomen
%wordt vermits er 20 sec gesimuleerd wordt...)
if check_dip == 1 && eind == 0
    dips_busfout(aantal_dips_busfout,3) = 1234;
    
end

%%%%%%%%%%%

end
    teller = teller + 1;
end

IEEE_14_bus_original;
aantal_bussen = size(Bus.con,1);
%hangt er een belasting aan de bus met dip?
dips_busfout_belasting = zeros(1000,7);
aantal_dips_busfout = 0;
teller = 1;
for k=1:size(dips_busfout,1)
for kk = 1:size(PQ.con,1)
    if PQ.con(kk,1)==dips_busfout(k,2)
        
        dips_busfout_belasting(teller,:) = dips_busfout(k,:);
        teller = teller+1;
        aantal_dips_busfout = aantal_dips_busfout +1;
    end
end
end


%gevoelige bussen is een array met de bussen in die "crashen" bij een
%bepaalde fout, weergegeven in kolom 1
teller = 1;
for k=1:aantal_dips_busfout
    if dips_busfout_belasting(k,6) == 0
        gevoelige_bussen(teller,1:2) = dips_busfout_belasting(k,1:2);
        teller = teller + 1;
    end
    
    
end

%gecrashte bussen: een fout op een bepaalde bus laat het netwerk
%platvallen. (=gevoelige_bussen2)
teller = 0;
teller2 = 1;
temp = 1;
for k=1:einde_interval2
    temp2 = 0;
for t=10:160
    
    if alle_spanningen_busfout(t+200*teller,:) == 0
        temp = temp+1;
    end
    
    if temp == 10 && temp2 ==0
        gevoelige_bussen2(teller2,1) = k;%(alle_spanningen_busfout(t+200*teller,k);
        teller2 = teller2+1;
        temp2 = 1;
    end
    
end
teller = teller + 1;
end

%onderbrekingen
onderbreking;
onderbreking_busfout_belasting = onderbreking_bussen_belasting;
aantal_dips = aantal_dips_busfout;
dips_bussen_belasting = dips_busfout_belasting;

save busfout aantal_dips dips_bussen_belasting onderbreking_bussen_belasting aantal_onderbrekingen aantal_bussen cruciale_bussen -append;

